package model

//小车类型
type MapOverview struct {
	Name    string          `json:"name" bson:"name" binding:"required"` //总览图名称
	MapData OverViewMapData `json:"map_data" bson:"map_data" `           //总览图名称
}
type OverViewMapData struct {
	Subviews            []SubView            `json:"subviews" bson:"subviews"`
	FactoryBezierCurves []FactoryBezierCurve `json:"factory_bezierCurves" bson:"factory_bezierCurves"`
	FloorBezierCurves   []FloorBezierCurve   `json:"floor_bezierCurves" bson:"floor_bezierCurves"`
	MapInfo             MapInfo_1            `json:"map_info" bson:"map_info"`
}

type SubView struct {
	Id        int     `json:"id" bson:"id"`
	Name      string  `json:"name" bson:"name"`
	MapName   string  `json:"map_name" bson:"map_name"`
	XLeft     float64 `json:"xLeft" bson:"xLeft"`
	YTop      float64 `json:"yTop" bson:"yTop"`
	Width     float64 `json:"width" bson:"width"`
	Height    float64 `json:"height" bson:"height"`
	BackColor string  `json:"back_color" bson:"back_color"`
	Reserve1  string  `json:"reserve1" bson:"reserve1"`
	Reserve2  string  `json:"reserve2" bson:"reserve2"`
}

type FactoryBezierCurve struct {
	Id            int     `json:"id" bson:"id"`
	Name          string  `json:"name" bson:"name"`
	FromMap       string  `json:"from_map" bson:"from_map"`
	StartId       string  `json:"start_id" bson:"start_id"`
	ToMap         string  `json:"to_map" bson:"to_map"`
	GoalId        string  `json:"goal_id" bson:"goal_id"`
	CostValue     int     `json:"cost_value" bson:"cost_value"`
	Type          int     `json:"type" bson:"type"`
	DeviceCode    string  `json:"device_code" bson:"device_code"`
	Width         int     `json:"width" bson:"width"`
	IsTwoWay      bool    `json:"is_two_way" bson:"is_two_way"`
	SiteIDACoordX float64 `json:"siteIDACoordX" bson:"siteIDACoordX"`
	SiteIDACoordY float64 `json:"siteIDACoordY" bson:"siteIDACoordY"`
	SiteIDBCoordX float64 `json:"siteIDBCoordX" bson:"siteIDBCoordX"`
	SiteIDBCoordY float64 `json:"siteIDBCoordY" bson:"siteIDBCoordY"`
	AdjustPointAX float64 `json:"adjustPointAX" bson:"adjustPointAX"`
	AdjustPointAY float64 `json:"adjustPointAY" bson:"adjustPointAY"`
	AdjustPointBX float64 `json:"adjustPointBX" bson:"adjustPointBX"`
	AdjustPointBY float64 `json:"adjustPointBY" bson:"adjustPointBY"`
	Color         string  `json:"color" bson:"color"`
	Reserve1      string  `json:"reserve1" bson:"reserve1"`
	Reserve2      string  `json:"reserve2" bson:"reserve2"`
}

type FloorBezierCurve struct {
	Id            int     `json:"id" bson:"id"`
	Name          string  `json:"name" bson:"name"`
	FromMap       string  `json:"from_map" bson:"from_map"`
	StartId       string  `json:"start_id" bson:"start_id"`
	ToMap         string  `json:"to_map" bson:"to_map"`
	GoalId        string  `json:"goal_id" bson:"goal_id"`
	CostValue     int     `json:"cost_value" bson:"cost_value"`
	Type          int     `json:"type" bson:"type"`
	DeviceCode    string  `json:"device_code" bson:"device_code"`
	Width         int     `json:"width" bson:"width"`
	IsTwoWay      bool    `json:"is_two_way" bson:"is_two_way"`
	SiteIDACoordX float64 `json:"siteIDACoordX" bson:"siteIDACoordX"`
	SiteIDACoordY float64 `json:"siteIDACoordY" bson:"siteIDACoordY"`
	SiteIDBCoordX float64 `json:"siteIDBCoordX" bson:"siteIDBCoordX"`
	SiteIDBCoordY float64 `json:"siteIDBCoordY" bson:"siteIDBCoordY"`
	AdjustPointAX float64 `json:"adjustPointAX" bson:"adjustPointAX"`
	AdjustPointAY float64 `json:"adjustPointAY" bson:"adjustPointAY"`
	AdjustPointBX float64 `json:"adjustPointBX" bson:"adjustPointBX"`
	AdjustPointBY float64 `json:"adjustPointBY" bson:"adjustPointBY"`
	Color         string  `json:"color" bson:"color"`
	Reserve1      string  `json:"reserve1" bson:"reserve1"`
	Reserve2      string  `json:"reserve2" bson:"reserve2"`
}

type MapInfo_1 struct {
	Name       string  `xml:"name" json:"name"`               //交通图名称
	ZoomFactor float32 `xml:"zoomFactor" json:"zoomFactor"`   //缩放因子
	OffsetX    int64   `xml:"offsetX" json:"offsetX"`         //平移位置x
	OffsetY    int64   `xml:"offsetY" json:"offsetY"`         //平移位置y
	CameraZoom float32 `xml:"camera_zoom" json:"camera_zoom"` //相机缩放因子
	CameraX    float32 `xml:"camera_x" json:"camera_x"`       //相机平移位置x
	CameraY    float32 `xml:"camera_y" json:"camera_y"`       //相机平移位置y
	SiteSizeX  int     `xml:"site_size_x" json:"site_size_x"` //点位尺寸X
	SiteSizeY  int     `xml:"site_size_y" json:"site_size_y"` //点位尺寸Y
}

func (MapOverview) TableName() string {
	return "t_data_map_overview"
}
